package com.sfx.concurrent.demo.concurrent.SingletonTest;

/**
 * 静态内部类-->懒汉式的创建
 */
public class Singleton5 {
    private Singleton5() {
        System.out.println("Singleton5()");
    }
    // 问题1：属于懒汉式还是饿汉式
    //类加载本来就是懒惰的,当没有使用到这个类的时候不会类加载,第一次使用的时候才会进行类加载操作,才会对立面的静态变量做初始化
    public static class Holder{
        //被static修饰的变量,是在静态代码块执行的,-->由JVM保证线程安全问题
        static Singleton5 INSTANCE = new Singleton5();
    }
    // 问题2：在创建时是否有并发问题
    public static Singleton5 getInstance() {
        return Holder.INSTANCE;
    }
}